<?php

namespace Collectif\AdminBundle\Controller;

use Symfony\Component\DependencyInjection\ContainerAware;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Collectif\AdminBundle\Entity\Membre;

use Collectif\AdminBundle\Form\MembreForm;
use Collectif\AdminBundle\Form\MembreFormAdd;
use Collectif\AdminBundle\Controller\MembreController;

class MembreController extends Controller {
    
    public function indexAction() {
        return $this->render('CollectifAdminBundle:Membre:index.html.twig', array('nom' => 'test'));
    }
    
    public function listAction()
    {
    	$repository = $this->getDoctrine()->getManager()->getRepository('CollectifAdminBundle:Membre');
    	
    	$membres = $repository->getAll();
    	
        return $this->render('CollectifAdminBundle:Membre:view.html.twig', array(
            'membres' => $membres
        ));
    }
    
    public function detailAction($id)
    {
    	$repository = $this->getDoctrine()->getManager()->getRepository('CollectifAdminBundle:Membre');
    	
    	$membre = $repository->find($id);
    	
    	if($membre === null)
    	{
    		throw $this->createNotFoundException('Membre[id='.$id.'] inexistant.');
    	}
    	
    	return $this->render('CollectifAdminBundle:Membre:detail.html.twig', array(
    			'membre' => $membre
    	));
    }
    
    public function editAction($id = null)
    {
    	
    	$message='';
        $em = $this->getDoctrine()->getManager();
        $repository = $this->getDoctrine()->getManager()->getRepository('CollectifAdminBundle:Membre');

        if (isset($id)) 
        {
            $membre = $repository->find($id);
            $date = new \Datetime();
            $membre->setDateModification($date);
            
            if (!$membre)
            {
                $message='Aucun membre trouvé';
            }
			$form = $this->container->get('form.factory')->create(new MembreForm(), $membre);
        }
        else 
        {
	 		$membre = new Membre();
			$membre->setDateModification(new \Datetime());
    		$form = $this->container->get('form.factory')->create(new MembreFormAdd(), $membre);
        }

        

        $request = $this->container->get('request');

        if ($request->getMethod() == 'POST') 
        {
            $form->bindRequest($request);
            
            if ($form->isValid()) 
            {
                
                $em->persist($membre);
                
                $em->flush();
                
                if (isset($id)) 
                {
                     $message='Membre modifié avec succès !';
                }
                else 
                {
                    $message='Membre ajouté avec succès !';
                }
                
                return new RedirectResponse($this->container->get('router')->generate('collectif_membre_homepage'));
            }
        }

    	return $this->render('CollectifAdminBundle:Membre:edit.html.twig', array(
    		'form' => $form->createView(),
            'message' => $message,
			'membre' => $membre
    	));
    }
    
    
    public function deleteAction($id)
    {
    	$em = $this->getDoctrine()->getManager();
    	$membre = $em->find('CollectifAdminBundle:Membre', $id);
    	
    	if (!$membre)
    	{
    		throw $this->createNotFoundException('Membre[id='.$id.'] inexistant.');
    	}
    	
    	$em->remove($membre);
    	$em->flush();
    	
    	
    	 return new RedirectResponse($this->container->get('router')->generate('collectif_membre_homepage'));
    }
    
   
}
